#include <bits/stdc++.h>
using namespace std;
typedef struct
{
    int x, y;
}ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode, *LinkList;
void Init(LinkList &L) // 初始化链表
{
    L = new LNode;
    L->next = NULL;
}
void CreatFront(LinkList &L, int n) // 头插
{
    while(n--)
    {
        LNode *p = new LNode;
        cin >> p->data.x >> p->data.y;
        p->next = L->next;
        L->next = p;
    }
}
void CreatBack(LinkList &L, int n) // 尾插
{
    LNode *T = L;
    while(n--)
    {
        LNode *p = new LNode;
        cin >> p->data.x >> p->data.y;
        p->next = T->next;
        T->next = p;
        T = p;
    }
}
void Get(LinkList L, int w, ElemType &e) // 获取第W个元素
{
    LNode *p = L->next;
    int j = 1;
    while(p && j < w)
    {
        p = p->next;
        j++;
    }
    e = p->data;
}
LNode *Locate(LinkList L, ElemType e)  // 获取元素e的位置
{
    LNode *p = L->next;
    while(p && (p->data.x != e.x || p->data.y != e.y))
    {
        p = p->next;
    }
    return p;
}
void Show(LinkList L)
{
    LNode *p = L->next;
    while(p)
    {
        cout << p->data.x << " " << p->data.y << endl;
        p = p->next;
    }
}
void Insert(LinkList &L, int w, ElemType e) // 在第w个位置插入元素e
{
    LNode *p = L;
    int j = 1;
    while(p && j < w)
    {
        p = p->next;
        j++;
    }
    LNode *q = new LNode;
    q->data = e;
    q->next = p->next;
    p->next = q;
}
void Delete(LinkList &L, int w) // 删除第w个元素
{
    LNode *p = L;
    int j = 1;
    while(p->next && j < w)
    {
        p = p->next;
        j++;
    }
    LNode *q = p->next;
    p->next = q->next;
    delete q;
}
int main()
{
    LinkList L;
    Init(L);
    int n; cin >> n;
    CreatBack(L, n);
    
    return 0;
   
}